/*! \file Configurable.h
 *	\brief <write description for Configurable.h>
 *
 *	created:	2009/11/10
 *	created:	10:11:2009   17:15
 *	filename: 	c:\src\main\libs\config\Configurable.h
 *	file path:	c:\src\main\libs\config
 *	file base:	Configurable
 *	file ext:	h
 *	author:		Vitalii Trubchaninov
 *				venngraydog@gmail.com
 */

#ifndef _CONFIG_CONFIGURABLE_H_
#define _CONFIG_CONFIGURABLE_H_

#pragma once

#include "types.h"
#include <core/SmartPtr.h>

namespace tt{
namespace config{

class Configurable
{
public:
	Configurable(void);
	~Configurable(void);

	void setCfg(const SharedPtr<BaseConfig>&);

	SharedPtr<BaseConfig>& cfg();
	const SharedPtr<BaseConfig>& cfg() const;

private:
	SharedPtr<BaseConfig> m_config;
};

} //namespace config
} //namespace tt
#include "Configurable.inl"

#endif //_CONFIG_CONFIGURABLE_H_
